home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / netzwerk / magplip / source / smakefile < prev    next >
Makefile  |  1996-02-26  |  6KB  |  223 lines

  1. #!sc:c/smake
  2. #
  3. #####################################################################
  4. #
  5. #  $VER: smakefile 6.4 (05 Dec 1995)
  6. #
  7. #  plip.device - Parallel Line Internet Protocol
  8. #
  9. #  Original code written by Oliver Wagner and Michael Balzer.
  10. #
  11. #  This version has been completely reworked by Marius Gröger,
  12. #  introducing slight protocol changes. The new source is
  13. #  a lot better organized and maintainable.
  14. #
  15. #  (C) Copyright 1993-1994 Oliver Wagner & Michael Balzer
  16. #  (C) Copyright 1995 Marius Gröger
  17. #      All Rights Reserved
  18. #
  19. #  $HISTORY:
  20. #
  21. #  05 Dec 1995 : 006.004 :  added target `release' to help
  22. #  03 Sep 1995 : 006.003 :  added missing dependency port.asm/magplip.i
  23. #  20 Aug 1995 : 006.002 :  support for new port.asm file
  24. #  30 Jul 1995 : 006.001 :  bumped to version 6 to reflect smake requirement
  25. #  24 Apr 1995 : 001.004 :  forgot to release magplip.i
  26. #  09 Mar 1995 : 001.003 :  doesn't do anymore redundant linker runs
  27. #  04 Mar 1995 : 001.002 :  maintains different CPU-optimized object files
  28. #  18 Feb 1995 : 001.001 :  added help facility
  29. #  12 Feb 1995 : 001.000 :  created
  30. #
  31. #####################################################################
  32.  
  33. #####################################################################
  34. #
  35. # installation drawer and names of device
  36. #
  37. INSTALL_DIR = AmiTCP:/Special/DEVS/Networks
  38. DEVICE_DIR  = /DEVS/Networks
  39. BASENAME    = magplip
  40. RELNAME     = magplip
  41. NAME        = magplip.device
  42. VERSION     = 37
  43. #
  44. #####################################################################
  45.  
  46. #####################################################################
  47. #
  48. # Aminet infos
  49. #
  50. AN_AUTHOR   = groeger@gundel.zdv.uni-mainz.de
  51. AN_UPLOADER = groeger@gundel.zdv.uni-mainz.de
  52. AN_SHORT    = SANA-II parallel port driver
  53. AN_TYPE     = comm/net
  54. #
  55. #####################################################################
  56.  
  57. #####################################################################
  58. #
  59. # following stuff is your configuration
  60. #
  61. LIBS        = LIB LIB:amiga.lib LIB lib:sc.lib LIB lib:debug.lib
  62. CINCLUDES   = INCDIR "NETINCLUDE:"
  63. ASMINCLUDES = INCDIR="INCLUDEA:" INCDIR="NETINCLUDE:"
  64. CPUSUFFIX   = 020 # 000 010 020 030 040 ANY
  65. CPUCCOPT    = CPU=68$(CPUSUFFIX)
  66. CP          = C:Copy
  67. MV          = C:Rename
  68. RM          = C:Delete >NIL:
  69. LD          = sc:c/slink
  70. CC          = sc:c/sc
  71. AS          = sc:c/sc
  72. MAKE        = sc:c/smake
  73. BUMPREV     = C:bumprev
  74. SETREV      = C:SetRev
  75. PROTECT     = protect
  76. BUILD_AMINET= /s/build-aminet
  77. ECHO        = Echo
  78. #
  79. #####################################################################
  80.  
  81. #####################################################################
  82. #
  83. # assembler/compiler flags
  84. #
  85. # this applies to normal and optimized compilation:
  86. #
  87. STDFLAGS    = $(CINCLUDES) NOMULTIPLEINCLUDES ERRREXX COMMENTNEST NOSTKCHK NOCHKABORT\
  88.               SMALLCODE SMALLDATA VERBOSE NOICONS STRICT ANSI
  89. #
  90. # this applies only to normal compilation:
  91. #
  92. NORMCFLAGS  = $(STDFLAGS)
  93. #
  94. # this applies only to optimized compilation:
  95. #
  96. OPTCFLAGS   = $(STDFLAGS) $(CPUCCOPT) PARAMETERS=REGISTERS OPT OPTTIME OPTINLINE\
  97.               OPTSCHEDULE STRINGMERGE STRUCTUREEQUIVALENCE
  98. #
  99. # this applies to assembler compilation
  100. #
  101. AFLAGS      = $(ASMINCLUDES) VERBOSE SMALLCODE SMALLDATA
  102. #
  103. #####################################################################
  104.  
  105. #####################################################################
  106. #
  107. # linkage flags
  108. #
  109. LDFLAGS     = NOICONS SC SD ND $(LIBS) TO
  110. OPTLDFLAGS  = NOICONS SC SD ND $(LIBS) TO
  111. #
  112. #####################################################################
  113.  
  114. #####################################################################
  115. #
  116. # the object files
  117. #
  118. NORMOBJ=rt.o device.no server.no track.no crc16.o port.o
  119. OPTOBJ=rt.o device.opt$(CPUSUFFIX) server.opt$(CPUSUFFIX) track.opt$(CPUSUFFIX)\
  120.    crc16.o port.o
  121. #
  122. #####################################################################
  123.  
  124. #####################################################################
  125. #
  126. # rules
  127. #
  128. # compile a file normally
  129. #
  130. .c.no:
  131.    $(CC) $(NORMCFLAGS) $*.c
  132.    -@$(RM) $*.no
  133.    @$(MV) $*.o $*.no
  134. #
  135. # compile a file optimizing
  136. #
  137. .c.opt$(CPUSUFFIX):
  138.    $(CC) $(OPTCFLAGS) $*.c
  139.    -@$(RM) $*.opt$(CPUSUFFIX)
  140.    @$(MV) $*.o $*.opt$(CPUSUFFIX)
  141. #
  142. # assemble a file
  143. #
  144. .asm.o:
  145.    $(AS) $(AFLAGS) $*.asm
  146. #
  147. #####################################################################
  148.  
  149. #####################################################################
  150. #
  151. # targets
  152. #
  153. help:
  154.    -@Echo "Usage:"
  155.    -@Echo "To make an unoptimized version"
  156.    -@Echo "   $(MAKE) all"
  157.    -@Echo "To make an optimized version"
  158.    -@Echo "   $(MAKE) all_opt"
  159.    -@Echo "To install an unoptimized version"
  160.    -@Echo "   $(MAKE) install"
  161.    -@Echo "To install an optimized version"
  162.    -@Echo "   $(MAKE) install"
  163.    -@Echo "To increment the revision"
  164.    -@Echo "   $(MAKE) newrev"
  165.    -@Echo "To remove all intermediate files for unoptimized the version"
  166.    -@Echo "   $(MAKE) clean_norm"
  167.    -@Echo "To remove all intermediate files for optimized the version"
  168.    -@Echo "   $(MAKE) clean_opt"
  169.    -@Echo "To %remove all intermediate files"
  170.    -@Echo "   %$(MAKE) clean"
  171.    -@Echo "To create a distribution"
  172.    -@Echo "   $(MAKE) release"
  173.  
  174. all: $(DEVICE_DIR)/$(NAME)
  175. all_opt: $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)
  176.  
  177. install: all
  178.    $(CP) $(DEVICE_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
  179.  
  180. install_opt: all_opt
  181.    $(CP) $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX) $(INSTALL_DIR)/$(NAME)
  182.  
  183. newrev:
  184.    $(BUMPREV) $(VERSION) $(BASENAME)
  185.  
  186. clean_norm:
  187.    -@$(RM) *.o
  188.    -@$(RM) *.no
  189.  
  190. clean_opt:
  191.    -@$(RM) *.o
  192.    -@$(RM) *.opt*
  193.  
  194. clean: clean_norm clean_opt
  195.  
  196. release:
  197.    $(MAKE) CPUSUFFIX=000 all_opt
  198.    $(MAKE) CPUSUFFIX=020 all_opt
  199.    $(MAKE) CPUSUFFIX=040 all_opt
  200.    $(BUILD_AMINET) "$(RELNAME)" "$(BASENAME)" "/ReadMe" "//$(BASENAME)" "$(AN_AUTHOR)" "$(AN_UPLOADER)" "$(AN_SHORT)" "$(AN_TYPE)" CLEAN
  201.  
  202. $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX): $(OPTOBJ)
  203.    $(LD) $(OPTOBJ) $(OPTLDFLAGS) $@
  204.  
  205. $(DEVICE_DIR)/$(NAME): $(NORMOBJ)
  206.    $(LD) $(NORMOBJ) $(LDFLAGS) $@
  207. #
  208. #####################################################################
  209.  
  210. #####################################################################
  211. #
  212. # various dependencies
  213. #
  214. rt.o: rt.asm magplip.i magplip_rev.i
  215. crc16.o: crc16.asm
  216. port.o: port.asm magplip.i
  217. device.opt$(CPUSUFFIX) device.no: device.c magplip.h
  218. server.opt$(CPUSUFFIX) server.no: server.c magplip.h
  219. track.opt$(CPUSUFFIX) track.no: track.c magplip.h
  220. #
  221. #####################################################################
  222.  
  223.